/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package epibot.QualificaSites;

import epibot.BancoDeDados.ArmazenaDados.Fasta;
import epibot.BancoDeDados.ArmazenaDados.ProcessaFasta;
import java.io.File;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
 *
 * @author Rafael Tosta
 */
class ImportProteina extends Thread {

    private JPanelQualificaSites jp;

    public ImportProteina(JPanelQualificaSites jp) {
        this.jp = jp;
    }
    
    @Override
    public void run() {

        JFileChooser e = new JFileChooser();
        e.setFileSelectionMode(JFileChooser.FILES_ONLY);
        File file = null;
        int returnVal = e.showOpenDialog(jp);
        if (returnVal == JFileChooser.APPROVE_OPTION) { //se escolhido o diretório...
            file = e.getSelectedFile();
            this.jp.getjTextProteina().setText(file.getAbsolutePath());
        }

        if (file != null) {

            //obtem os arquivos fasta em um array
            ProcessaFasta ex = new ProcessaFasta();
            ArrayList<Fasta> fastas = ex.go(file);

            if (fastas.isEmpty()) {
                jp.setAvisoProtein("");
                this.jp.getjTextProteina().setText("");
                JOptionPane.showMessageDialog(jp, "Import aborted, incompatible file!");
                fastas = new ArrayList<Fasta>();
            } else {
                jp.setAvisoProtein(fastas.size() + " proteins imported");
            }
            
            jp.setFastas(fastas);
            jp.setTamanhoAlelo();
        }
    }
}
